﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using TGVR.DataHelper.BussinessObject.BookingSystem;

namespace TGVR_Boot
{
    public interface IBoot
    {
        /// <summary>
        /// Tìm vé máy bay
        /// </summary>
        /// <param name="_strStationForm">Mã sân bay đi</param>
        /// <param name="_strStationTo">Mã sân bay đến</param>
        /// <param name="_dtDateFrom">Ngày đi</param>
        /// <param name="_dtDateTo">Ngày về</param>
        /// <param name="_iAdut">Số lượng người lớn</param>
        /// <param name="_iChild">Số lượng trẻ em</param>
        /// 
        /// <param name="_iBaby">Số lượng trẻ sơ sinh</param>
        /// <returns>Danh sách các vé</returns>
        List<BK_Ticket> Search(string _strStationForm, string _strStationTo, DateTime _dtDateFrom, DateTime? _dtDateTo,
            int _iAdut, int _iChild, int _iBaby, bool _isInter, int _iUserID);
        /// <summary>
        /// Tìm vé máy bay rẽ nhất trong 1 tuần
        /// </summary>
        /// <param name="_strStationForm">Mã sân bay đi</param>
        /// <param name="_strStationTo">Mã sân bay đến</param>
        /// <param name="_dtDateFrom">Ngày đi</param>
        /// <param name="_dtDataTo">Ngày về</param>
        /// <param name="_iAdut">Số lượng người lớn</param>
        /// <param name="_iChild">Số lượng trẻ em</param>
        /// <param name="_iBaby">Số lượng trẻ sơ sinh</param>
        /// <returns>Danh sách các vé</returns>
        List<BK_Ticket> SearchCheapest(string _strStationForm, string _strStationTo, DateTime _dtDateFrom, DateTime? _dtDataTo,
            int _iAdut, int _iChild, int _iBaby, int _iUserID);
        /// <summary>
        /// Đặt vé trực tiếp tại các hãng
        /// </summary>
        /// <param name="booking">Thông tin đặt vé</param>
        /// <param name="passenges">Danh sách hành khách sẽ bay</param>
        /// <param name="tkDepart">Thông tin vé đi</param>
        /// <param name="tkReturn">Thông tin vé về</param>
        /// <returns>0:Chưa xử lí hoặc lỗi không xác định   1: Đặt vé thành công   -1: Chưa đăng nhập</returns>
        int MakeBooking(BK_Booking booking, BK_Passenger[] passenges, BK_Ticket tkDepart, BK_Ticket tkReturn, int _iUserID);
        string GetCode();

        int GetTotal();

        DateTime GetHoldToDate();
    }
}
